iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
生成式 AI

一塊一塊拼湊的 AI 樂高世界之旅系列 第 2

Day 2:資料型別、變數與運算子與容器

  • 分享至 

  • xImage
  •  

前言

在程式世界裡,所有的邏輯與運算都是由「資料」組成的。電腦就像一位超快的計算小幫手,但它需要我們告訴它:資料要放在哪裡、屬於什麼型別、要怎麼運算。今天,我們會從 變數 開始,理解「如何用一個名稱保存資料」;接著介紹 基本資料型別(數字、字串、布林值),再延伸到 運算子 的操作。最後,我們會認識 容器型別(list、tuple、set、dict),這些就像資料的「收納工具箱」,能幫我們更有效率地整理與管理資料。

如果把 Day 1 想像成「準備好工作環境」,那麼 Day 2 就是「開始學會放資料、做計算、整理東西」的關鍵一步。只要掌握這些基礎,未來寫程式就能更靈活、更有邏輯。

生活比喻

想像你有一間房間:

  • 變數:就像在房間裡放一個標籤清楚的收納盒,寫上「名字」、「年齡」或「身高」,你可以把相對應的資料放進去。
  • 資料型別:就像收納盒裡的東西種類,有的是「數字」(年齡)、有的是「文字」(名字)、有的是「真假標籤」(是否是學生)。
  • 運算子:就像你用剪刀、秤子或計算機去處理盒子裡的東西,能進行加減乘除或比較。
  • 容器:就像不同功能的櫃子:
    • list:抽屜櫃,能放很多東西,還能隨時加進去。
    • tuple:密封的展示櫃,擺好之後不能動,適合固定不變的資料。
    • set:免重複的籃子,丟進去的東西會自動去掉重複。
    • dict:帶標籤的文件櫃,找到標籤(key)就能拿到對應的資料(value)。

透過這些工具,就像把房間整理得井然有序,未來不論要找東西、加東西或比較,都能快速完成。

1. 變數是什麼?

變數就像貼了標籤的盒子,可以放任何東西進去。

name = "Jerry"
age = 25
height = 181.3
is_student = True
變數名稱 放的東西 資料型別
name "Jerry" 字串 str
age 25 整數 int
height 181.3 浮點數 float
is_student True 布林值 bool

2. 資料型別介紹

數字型別:int 和 float

a = 10        #int
b = 3.14      #float

字串型別:str

message = "Hello, Python!"  #str

f-string 字串插值(推薦用法)

name = "Jerry"
print(f"{name} 你好")  
age = 25
print(f"你好,我今年 {age} 歲")
print(f"3 加 5 等於 {3 + 5}")

-- 結果:https://ithelp.ithome.com.tw/upload/images/20250916/20161224CazjqYBwPS.png

隱性型別轉換(Implicit Type Conversion)

Python 中,當你在一個運算式中混用不同型別時,會自動轉換型別,這叫做隱性型別轉換。

範例 1:int ➜ float

a = 10              #int
b = 3.5             #float
print(a + b)        # 13.5
print(type(a + b))  # <class 'float'>

-- 可知 a+b 的過程中從int切換成float

範例 2:bool ➜ int

print(True)         # True
print(False)        # False
print(int(True))    # 1
print(int(False))   # 0
print(True + 5)     # 6
print(False * 10)   # 0

範例 3:int / int ➜ float

x = 7
y = 2
print(x / y)        # 3.5

常見轉換表

運算類型 轉換後類型 說明
int + float float 保留小數精度
bool + int int True 為 1,False 為 0
int / int float 除法回傳浮點數
bool + float float 最終結果為 float

無法隱性轉換的例子(會報錯)

age = 25
print("你今年" + age + "歲")  # TypeError

-- 結果:https://ithelp.ithome.com.tw/upload/images/20250916/20161224Gm2w5YlOCY.png
改用顯性轉型或 f-string:

print("你今年" + str(age) + "歲")
print(f"你今年 {age} 歲")

小結

Python 只對「安全」的型別進行隱性轉換,否則會要求程式設計師自行轉型。


3. 運算子介紹

數學運算子

運算子 意義 範例 (a = 10, b = 3)
+ 加法 a + b13
- 減法 a - b7
* 乘法 a * b30
/ 除法 a / b3.333...
// 整除 a // b3
% 餘數 a % b1
** 次方 a ** b1000

比較運算子

運算子 意義 範例
== 相等 a == b
!= 不相等 a != b
> 大於 a > b
< 小於 a < b
>= 大於等於 a >= b
<= 小於等於 a <= b

4. 容器:裝一堆資料的工具

List(清單)

fruits = ["apple", "banana", "cherry"]
print(fruits[0])        # 則會印出 apple
fruits.append("orange") # .append 指令是將orange加入fruits清單裡面
print(fruits)           # ['apple', 'banana', 'cherry', 'orange']
  • 有順序、可重複、可修改
  • 可用 append 加東西

Dictionary(字典)

person = {
    "name": "Jerry",
    "age": 25
}
print(person["name"])           # Jerry
print(person.get("name"))       # Jerry
print(person.get("height"))     # None
print(person.get("height", 0))  # 0 (預設值)
  • key 對應 value (上述範例:key為name,value為Jerry)
  • 使用 get() 可避免錯誤

Tuple(元組)

colors = ("red", "green", "blue")
print(colors[0])  # red
# colors[0] = "yellow"  # 錯誤!tuple 不可修改
  • 有順序、可重複、不可修改
  • 適合保存「固定資料」

Set(集合)

nums = {1, 2, 3, 2, 1}
print(nums)       # {1, 2, 3}
print(len(nums))  # 3
print(2 in nums)  # True
nums.add(4)
print(nums)       # {1, 2, 3, 4}
  • 無順序、不重複、不可索引
  • 適合查找、集合運算

5. 容器對照表與差異比較

類型 是否有順序 可否重複 可否修改 查詢方式 自動去重
list 索引 [i]
tuple 索引 [i]
set in 運算子
dict key 唯一 鍵 [key] 是(key)

上一篇
Day 1:VS Code 安裝與環境設定(Windows/macOS/Linux)
下一篇
Day 3:條件判斷與流程控制(if / while / for)
系列文
一塊一塊拼湊的 AI 樂高世界之旅4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言